<?php
class Captcha{
    function imgcode($strTxt = '1234', $length = 4, $width = 100, $height = 40){
        header("Content-type: text/html; charset=utf-8");
        header("Content-type:image/png");
        $strTxt = strval($strTxt);
        //先定义图片的长、宽
        $aimg = imagecreate($width, $height);   // 生成图片
        imagecolorallocate($aimg, 255, 255, 255);   // 图片底色，imagecolorallocate第1次定义颜色php就认为是底色了
        //生成雪花背景
        for ($i=1; $i <= 200; $i++) {//先用200个做测试
            imagestring($aimg, 0, mt_rand(1, $width), mt_rand(1, $height), "*",
                imagecolorallocate($aimg, mt_rand(150, 255), mt_rand(150, 255), mt_rand(150, 255)));
            // 生成＊号为了使它们看起来"杂乱无章、5颜6色"，
            // 就得在1个1个生成它们的时候，让它们的位置、颜色，甚至大小都用随机数，rand()或mt_rand都可以完成。
        }
        // 生成随机数显示到图片，位置、大小、颜色都用成随机数
        // 为了区别于背景，这里的颜色不超过200，上面的不小于200
        for ($i = 0; $i < strlen($strTxt); $i++){
            imagestring($aimg, mt_rand(20, 50),
                $i * $width / $length + mt_rand(1, 5), mt_rand(1, $height/2), $strTxt[$i],
                imagecolorallocate($aimg, mt_rand(0, 100), mt_rand(0, 150), mt_rand(0, 150)));
        }
        imagepng($aimg);        // 生成png格式
        imagedestroy($aimg);    // 释放与 image 关联的内存
        die();
    }
}
?>